home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-08 | 43.7 KB | 1,151 lines |
- ==============================================================================
-
- HAPPy (H.Asano Pascal Processing system)
- Version 0.0
-
- エ ラ ー メ ッ セ ー ジ 説 明 書
-
- Copyright (c) H.Asano 1992
-
- ==============================================================================
-
- ┌────────── 目 次 ───────────┐
- │ │
- │ 1.はじめに │
- │ 2.コンパイラのエラーメッセージ │
- │ 3.コンパイルエラーメッセージ │
- │ 4.アセンブラのエラーメッセージ │
- │ 5.インタプリタのエラーメッセージ │
- │ 6.インタプリタのランタイムエラーメッセージ │
- │ │
- └────────────────────────────┘
-
-
-
- 1.はじめに
-
- この説明書では、HAPPyが出力するすべてのエラーメッセージについて原因
- を説明します。
- すべてのエラーメッセージには、メッセージ番号がついています。メッセージ番
- 号は英大文字1文字のあとに数字3桁で構成されます。英大文字と説明書の参照す
- る章の対応は以下のとおりです。
- Cxxx : 2章 コンパイラのエラーメッセージ
- Exxx : 3章 コンパイルエラーメッセージ
- Axxx : 4章 アセンブラのエラーメッセージ
- Ixxx : 5章 インタプリタのエラーメッセージ
- Rxxx : 6章 インタプリタのランタイムエラーメッセージ
-
-
-
- 2.コンパイラのエラーメッセージ
-
- コンパイルエラー以外のエラーメッセージを以下に示します。このメッセージは
- 標準エラー出力に出力されます。
-
- 番号 メッセッージ内容
- ───────────────────────────────────────
- C001 起動パラメータが誤っている
-
- pcコマンドの起動パラメータに誤りがあります。
- このエラーメッセージの後、簡単な使用法が出力されます。
-
- C002 Pascalソースファイル(%s)がない
-
- 起動パラメータで指定したPascalのソースファイルがオープンでき
- ません。%sには指定したソースファイル名が入ります。
-
- C003 P-codeソースファイル(%s)が作れない
-
- 何らかの原因で、P-codeソースファイルが作成できません。
- P-codeソースファイルは、環境変数TMPの示すディレクトリに作成され
- ます。TMPの設定内容のチェックをやっていませんので、設定内容によ
- ってはこのエラーが発生することがあります。
- %sには、TMPの設定内容とpcode.pcs をつなげた文字列が入ります。コ
- ンパイラをその名前でファイルをオープンしようとしました。
-
- C004 アセンブラ(PA.OVL)が起動できない
-
- P-codeソースへのコンパイルが正常に終わった後、アセンブラを起動でき
- ません。
- PC.EXEとPA.OVLが同一ディレクトリにないことが考えられます。
-
-
-
- 3.コンパイルエラーメッセージ
-
- コンパイルするPascalソースプログラムに文法エラーがあった場合、pc
- コマンドはコンパイルエラーメッセージを標準出力に出力します。
- 文法エラーを検出しても、可能であれば続けてプログラムの解析を続けます。
- ただし、P-codeオプジェクトファイルは生成されません。
- コンパイルエラーメッセージは次のような書式で標準出力に出力します。
- ┌──────────────────────────────┐
- │ソースファイル名(行番号) : Exxx: メッセージ内容 │
- └──────────────────────────────┘
-
- もし、お使いのエディタが「タグジャンプ機能」を有しているならば(RED2
- 等)、pcコマンドの標準出力をファイルにリダイレクトし、エディタでそのファ
- イルを読み込んで、タグジャンプ機能を使うと、エラーのあった場所にカーソルを
- 移動させることができます。
-
- エラーメッセージの番号順に、メッセージ内容とその意味を説明します。
-
- 番号 メッセッージ内容
- ───────────────────────────────────────
- E001 単純型に誤りがある
-
- 単純型とは、順序型(列挙型、部分範囲型、整数型、文字型、論理型)、
- 実数型のことをいいます。それらの型の記述に誤りがあります。
-
- E002 名前がない
-
- 名前が要求されているところに、名前の記述がありません。
- 名前は、英数字からなる文字列で、予約語でないものです。
-
- E003 最初に現れる記号が'program'でない
-
- プログラムソースを最初から読んでいって、記号分離子を読み飛ばした後
- に出てくる最初の記号が、'program' でないということです。
-
- E004 ')' がない
-
- ')' が必要なところに、')' がありません。
-
- E005 ':'がない
-
- ':' が必要なところに、':' がありません。
-
- E006 不当な記号が現れた
-
- 構文誤りの時に最もよく起きるエラーです。
- 要求される記号以外の記号が現れました。
-
- E007 引数の並びに誤りがある
-
- 手続き・関数の宣言における仮引数並びに誤りがあります。
-
- E008 ofがない
-
- 'of'が必要なところに、'of'がありません。
-
- E009 '('がない
-
- '(' が必要なところに、'(' がありません。
-
- E010 型の記述に誤りがある
-
- 型の記述が要求されるところに、誤った記号があります。
-
- E011 '['がない
-
- '[' が必要なところに、'[' がありません。
-
- E012 ']'がない
-
- ']' が必要なところに、']' がありません。
-
- E013 endがない
-
- 'end' が必要なところに、'end' がありません。
- begin とend の対応がとれていない場合に、よく発生します。
-
- E014 ';'がない
-
- ';' が必要なところに、';' がありません。
-
- E016 '='がない
-
- '=' が必要なところに、'=' がありません。
-
- E017 beginがない
-
- E018のエラーとともに発生します。ブロックを開始する'begin' がありま
- せん。
-
- E018 宣言部に誤りがある
-
- 宣言部には、ラベル宣言部、定数定義部、型定義部、変数宣言部、手続き
- 関数宣言部がありますが、各部はそれぞれの予約語によって始まります。
- その予約語以外のものが現れた場合や、各部の宣言の順序が誤っている場
- 合に、このエラーが発生します。
-
- E019 欄の並びに誤りがある
-
- レコードの欄並びに誤りがあります。
-
- E020 ','がない
-
- プログラム引数を区切る',' がありません。
-
- E021 '.'がない
-
- プログラムの最後が'.' でありません。
- begin とend の対応が取れていないことが考えられます。
- このエラー検出後も、引き続きプログラムの解析を続けます。
-
- E022 '..'がない
-
- 部分範囲型の下限定数の次の記号が'..'でありません。
-
- E030 不当文字(%s)が現れた
-
- 注釈や文字列の中以外で、Pascalで許されない文字が現れました。
- %sには、不当文字が入ります。
- 注釈の始めの' {' を忘れていることが考えられます。
-
- E050 定数に誤りがある
-
- 定数を必要とするところで、符号、符号なし数、文字列、名前以外が現れ
- ました。
-
- E051 ':='がない
-
- 代入文またはfor 文において、':='がありません。
-
- E052 thenがない
-
- if文の、論理式の後に、'then'がありません。
-
- E053 untilがない
-
- 'until' が必要なところに、'until' がありません。
-
- E054 doがない
-
- 'do'が必要なところに、'do'がありません。
-
- E055 toあるいはdowntoがない
-
- for 文において初期値の次の記号が'to'あるいは'downto'でありません。
-
- E058 項に誤りがある
-
- 式を構成する項がに誤りがあります。
-
- E059 変数に誤りがある
-
- 変数として使われている名前の次の記号が許されないものの場合にこのエ
- ラーが発生します。
-
- E100 名前(%s)が宣言よりも先に参照されている
-
- その場所の有効範囲において、名前は参照するよりも先に定義・宣言され
- なければなりません。
- %sには、誤りのある名前が入ります。
- 例えば、次のような場合はこのエラーが発生します。
- program E100Error;
- const x=1000; {プログラムブロックで定義したx }
- procedure p; {ここより手続きp の有効範囲}
- const y=x ; {手続きp の有効範囲で、x が定義}
- x=10 ; {より先に参照されている}
- begin writeln(y,x) end; {この行でエラー発生}
- begin p end.
-
- E101 名前(%s)が再度宣言された
-
- その場所の有効範囲において、名前が再び宣言されました。
- %sの部分には再宣言された名前が入ります。
-
- E102 下限が上限より大きい
-
- 部分範囲を指定する際の、'..'の前の定数(下限)に、後の定数(上限)
- の値よりも大きなものが指定されました。
-
- E103 名前(%s)の持つ意味が適当でない
-
- 名前の持つ意味(定数名/型名/変数名/欄名/手続き名/関数名)が正
- しくありません。
- %sの部分には誤りの名前が入ります。
- 例えば、次のような場合にこのエラーが発生します。
- type a=array[1..10] of char ;
- var va:a;
- vb:va ; ・・・・・ vaは変数名。この場所には型を指定し
- なければならないので、vaという名前
- の意味ガ変数名では適当でない。
-
- E104 名前(%s)が宣言されていない
-
- その場所の有効範囲において、名前が宣言されていません。
- %sの部分には宣言されていない名前が入ります。
-
- E105 定数名(%s) には符号がつけられない
-
- 文字列を表す定数名の前に符号がついています。
- %sには、定数名が入ります。
-
- E106 符号のあとに数がない
-
- '+' または'-' の符号の次が数字でありません。
-
- E107 部分範囲型の上限と下限の定数の型が一致していない
-
- 部分範囲型の上限と下限の2つの定数が同じ型でありません。
-
- E109 部分範囲型の定数の型が順序型でない
-
- 部分範囲型は、下限値と上限値の定数を指定しますが、どちらも順序型の
- 定数である必要があります。
-
- E110 タグ型は順序型でなければならない
-
- レコードの可変部に現れるタグ型は、順序型でなければなりません。
-
- E111 可変要素の定数がタグ型の値ではない
-
- レコードの可変要素につける定数は、タグ型の値を表すものでなければな
- りません。
-
- E112 ファイル型の要素型が代入可能なものでない
-
- ファイル型の要素型には、次のものは許されません。
- ・ファイル型
- ・ファイル型を含んでいる構造型
-
- E113 添字型は順序型でなければならない
-
- 配列の型定義の配列の添字型、または添字つき変数の添字が順序型であり
- ません。
-
- E115 集合の基底型が順序型でない
-
- 集合の基底型は順序型である必要があります。
-
- E116 標準手続き(%s)の引数に誤りがある
-
- 宣言済標準手続きの引数に誤りがあります。
- %sには、標準手続き名が入ります。各種の標準手続きの引数誤りに対して
- ほとんどこの1つのメッセージが出力されるので、原因が分かりにくいか
- も知れませんが、文法書などで原因を突き止めてください。
-
- E117 型名(%s)の前方参照が解決されていない
-
- 型定義部においてポインタ型の対象型として指定した型名が、その有効範
- 囲の型定義部で定義されていません。
- %sには、定義されていない型名が入ります。
-
- E118 前方宣言された手続き/関数(%s)の実体が宣言されていない
-
- forward 指令を使って前方宣言された手続き/ 関数の実体がありません。
-
- E119 前方宣言されているのでここでは引数の並びは書けない
-
- 手続きまたは関数が、前方宣言されている時、その手続きまたは関数の標
- 示(実体を定義する宣言の頭書き)には、仮引数並びを指定してはいけま
- せん。
-
- E120 関数(%s)の結果型が順序型、実数型、ポインタ型でない
-
- 関数の結果型として指定できるのは、順序型名、実数型名、ポインタ型名
- です。これ以外の指定は許されません。
- %sには、関数名が入ります。
-
- E121 仮値引数の型がファイルの要素型として許されるものでない
-
- 仮値引数の型に、ファイルの要素型として許されないものが指定されまし
- た。ファイル型の要素型に次のものは許されません。
- ・ファイル型
- ・ファイル型を含んでいる構造型
-
- E122 関数(%s)は前方宣言されているのでここに結果型を書けない
-
- この関数は前方宣言されているので、関数標示は、「function 関数名」
- と指定するだけで良く、関数標示に仮引数並びや結果型を指定してはいけ
- ません。
- %sには、関数名が入ります。
-
- E123 関数(%s)の宣言に結果型がない
-
- 関数宣言の関数頭部に、結果型名の指定がありません。
- %sには、関数名が入ります。
-
- E125 標準関数(%s)の引数に誤りがある
-
- 宣言済標準関数の引数に誤りがあります。
- %sには、標準関数名が入ります。各種の標準関数の引数誤りに対してすべ
- でこの1つのメッセージが出力されるので、原因が分かりにくいかも知れ
- ませんが、文法書などで原因を突き止めてください。
-
- E126 実引数の数が仮引数の数と一致していない
-
- 手続き・関数の宣言で指定した仮引数の数と、その手続き・関数を呼び出
- している実引数の数が合いません。例えば、宣言では引数が3つあるのに
- 呼出し側で2つしか指定しなかった場合に、このエラーが発生します。
-
- E127 実引数(%s)と仮引数が同形でない
-
- 実手続き引数または実関数引数と、対応する仮手続き引数または仮関数引
- 数とが同形でありません。同形については文法書を参照してください。
- %sには、実引数として指定した手続き名または関数名が入ります。
-
- E129 代入文の左辺に対して右辺が代入可能でない
-
- 代入文で、左辺と右辺の型が代入可能でありません。
- ここでいう代入可能とは、次のものをいいます。詳しくは文法書を参照し
- て下さい。
- ・左辺と右辺が同じ型で、その型がファイル型の要素型として許される。
- ・左辺が実数型で、右辺が整数型である。
- ・左辺と右辺が適合する順序型である。なお、値の範囲チェックはコンパ
- イル時には行いません。
- ・左辺と右辺が適合する集合型である。なお、値の範囲チェックはコンパ
- イル時には行いません。
- ・左辺と右辺が適合する文字列型である。
-
- E130 in演算子の右辺の式が集合型でない
-
- in関係演算子の右辺の式が集合型でありません。
-
- E131 ポインタは'=' または'<>'の判定しか許されない
-
- ポインタ型に適応できる演算子は'=' または'<>'のみです。
-
- E132 集合には'<'または'>'の判定は許されない
-
- 集合には'<','>' の関係演算子を使うことはできません。
-
- E133 ファイルの比較は許されていない
-
- ファイル変数には関係演算子は使えません。
-
- E134 演算対象の型に誤りがある
-
- 関係演算子、算術演算子、集合演算子の演算対象の型が誤っています。
-
- E135 %sの演算対象の型は論理型でなければならない
-
- 論理演算子の演算対象の型は論理型でなければなりません。
- %sには、and,or,notのいずれかかが入ります。
-
- E136 集合構成子の要素記述が順序式でない
-
- 集合構成子の要素記述が順序式でありません。
-
- E137 集合構成子の要素記述の型が一致していない
-
- 集合構成子の要素記述において、型が一致しないものが現れました。
-
- E138 変数の型は配列でない
-
- 添字つき変数で指定された配列変数が配列型でありません。
-
- E139 添字の型が宣言と一致していない
-
- 添字つき変数の添字の順序式が宣言と一致しません。
-
- E140 変数の型がレコード型でない
-
- '.' の前にレコード変数でないものを指定しました。
- あるいはwith文でレコード変数でないものを指定しました。
-
- E141 変数の型がファイル型、ポインタ型でない
-
- 変数の後に、' ^' がついている場合、その変数は、ファイル型かポイン
- タ型である必要があります。
-
- E142 仮変数引数と実引数の型が一致していない
-
- 変数引数は、宣言部で宣言した仮変数引数の型と、呼び出す側の実変数引
- 数の型が同じである必要があります。
-
- E143 関係演算子の被演算子の型が正しくない
-
- 関係演算子(= <> <= >= < > in) の左と右のオペランドの型が正しいもの
- ではありません。各関係演算子の被演算子の型については、文法書を参照
- してください。
-
- E144 %sが順序式でない
-
- %sには、"for文の初期値" または、"for文の終値" または"case 文の選択
- 式" が入ります。
- これらの式は、順序型を持つ式である必要があります。
-
- E145 for文の制御変数と%sの型が適合しない
-
- for 文の制御変数と、初期値あるいは終値の型が適合していません。
- %sには、 "初期値" または "終値" が入ります。
-
- E146 %sの式が論理式でない
-
- if文、repeat文、while 文の式が論理式でありません。
- %sには、if文、repeat文、while 文のいずれかかが入ります。
-
- E147 case文の選択式の型と定数の型が一致しない
-
- case文においては、選択式の型と選択枝につける定数の型が同じでなけれ
- ばなりません。
-
- E150 標準関数(%s)への代入は許されていない
-
- 標準関数名へ代入を行うことはできません。
- 例えば、 eoln := true ; は、このエラーになります。
- %sには、標準関数名が入ります。
-
- E151 関数引数への代入は許されていない
-
- 仮関数引数への代入は許されません。
-
- E152 レコードにこのような欄(%s)はない
-
- このレコードには欄指定子で示した欄名がありません。
- %sには、誤っている名前が入ります。
-
- E155 仮値引数に対して実引数が代入可能でない
-
- 仮値引数に対する実引数は、代入可能でなければなりません。
- ここでいう代入可能とは、次のものをいいます。詳しくは文法書を参照し
- て下さい。
- ・両者が同じ型で、その型がファイル型の要素型として許される。
- ・仮値引数が実数型で、実引数が整数型である。
- ・両者が適合する順序型である。なお、値の範囲チェックはコンパイル時
- には行いません。
- ・両者が適合する集合型である。なお、値の範囲チェックはコンパイル時
- には行いません。
- ・両者が適合する文字列型である。
-
- E156 case文の定数が再度定義された
-
- case文の選択肢につける定数に、同じ値を指定してはいけません。
-
- E159 実数型、文字列型の定数は指定できない
-
- レコードの可変要素の定数、または長い形式のnew,dispose 標準手続きの
- 引数に指定する定数には、実数型、文字列型のものは指定できません。
-
- E160 手続き/関数(%s)はすでに宣言されている
-
- 同じ手続きまたは関数を再度宣言しようとしました。
- %sには、手続き名または関数名が入ります。
-
- E161 手続き/関数(%s)が再び前方宣言された
-
- forward 指令で前方宣言された手続きまたは関数が、再びforward 指令で
- 宣言されました。
- %sには、手続き名または関数名が入ります。
-
- E162 該当する可変要素選択子がない
-
- 長い形式のnew,dispose 標準手続きにおいて、引数に指定した定数に対応
- する可変要素選択子がありません。
-
- E164 ラベルが0から9999の間の整数でない
-
- ラベル宣言部で宣言したラベル、あるいは文の前のラベル、あるいはgoto
- 文で参照しているラベルの値が、0 ~9999の整数でありません。
-
- E165 ラベル(%s)が再度定義された
-
- 同一有効範囲において、文の先頭のラベルの値に同じものがあります。
- %sにはラベルが入ります。
-
- E166 ラベル(%s)が再度宣言された
-
- 同一有効範囲のラベル宣言部に、同じラベル名が宣言されました。
- %sにはラベルが入ります。
- 例えば、label 1,1 ; は、このエラーが発生します。
-
- E167 ラベル(%s)が宣言されていない
-
- goto文で参照しているラベル、または文の前につけたラベルが、そのブロ
- ックのラベル宣言部で宣言されていません。
- %sにはラベルが入ります。
-
- E168 ラベル(%s)が定義されていない
-
- ラベル宣言部で宣言したラベルが、その実行部の文の前に1つもついてい
- ません。
- %sにはラベルが入ります。
-
- E173 実関数引数(%s)と仮関数引数の結果の型が異なっている
-
- 実関数引数と、対応する仮関数引数の結果の型が異なっています。
- %sには、実関数引数名が入ります。
-
- E174 標準手続き(%s)は実手続き引数として使えない
-
- 宣言済の標準手続きを、実手続き引数に指定できません。
- %sには、標準手続き名が入ります。
-
- E175 標準関数(%s)は実関数引数として使えない
-
- 宣言済の標準関数を、実関数引数に指定できません。
- %sには、標準関数名が入ります。
-
- E176 関数名(%s)への代入を行っていない
-
- その関数を宣言したブロックの中に、その関数名への代入文が1つもあり
- ません。1つもなければ関数の結果を返却できないので、このエラーが発
- 生します。
- %sには、関数名が入ります。
-
- E177 この場所では関数名(%s)への代入は許されない
-
- 関数名への代入は、その関数を宣言したブロックの中で行わなければなり
- ません。そうでない場所で関数名への代入を行った際にこのエラーが発生
- します。
- %sには、関数名が入ります。
-
- E178 可変要素の定数に同じものが現れた
-
- レコードの可変部において、同じ値の可変要素の定数が現れました。
-
- E179 タグ型の取り得るすべての値が選択要素の定数に指定されていない
-
- レコードの可変部において、タグ型の取りえるすべての値が選択要素の定
- 数に指定されなければなりません。
-
- E186 for文の制御変数(%s)がfor文と同一ブロックで定義されていない
-
- for 文の制御変数は、そのfor 文を含むブロックに局所的でなければなり
- ません。この規則はISO規格によって決められたことで、初期のPas
- calにはないので注意してください。
- %sには、制御変数名が入ります。
-
- E187 for文の制御変数(%s)に変数引数は使えない
-
- for 文の制御変数は、そのfor 文を含むブロックに局所的でなければなら
- ないことから、変数引数は制御変数に使えません。
- %sには、制御変数名が入ります。
-
- E188 for文の制御変数(%s)の型が順序型でない
-
- for 文の制御変数は、順序型でなければなりません。
- %sには、制御変数名が入ります。
-
- E196 プログラム引数に同じ名前(%s)が指定された
-
- プログラム引数で指定した名前は互いに異なっていなければなりません。
- %sには、誤っているプログラム引数名が入ります。
-
- E197 プログラム引数に指定した名前(%s)が宣言されていない
-
- プログラム引数で指定した名前は、input とoutputを除いてプログラムブ
- ロックで変数名として宣言しておく必要があります。
- %sには、宣言されていない名前が入ります。
-
- E201 符号なし実数の表記に誤りがある
-
- 符号なし実数の表記が正しくありません。
-
- E202 文字列定数は行を越えてはいけない
-
- 文字列定数は、ソーステキスト上の行をまたがって記述できません。
- 例えは、
- const title = 'HAPPy is the H.Asano Pascal Processing system.
- You can Pascal programing.'
- という記述をした場合、このエラーが発生します。
-
- E203 符号なし整数は2147483647以下でなければならない
-
- 符号なし整数の値は、定義済定数maxintの値以下である必要があります。
- HAPPy では、maxintは、2147483647です。
-
- E205 長さ0の文字列は許されない
-
- ''のように、何も囲んでいないような文字列定数表記は、Pascalで
- は許されていません。
-
- E207 HAPPyでは符号なし実数の表記は15文字以内でなければならない
-
- HAPPy 独自の制限です。符号なし実数定数の表記は、15文字以内にして下
- さい。例えば、
- const r = 000003.1492E+000
- では、符号なし実数定数が16文字からなっており、このエラーが発生し
- ます。
-
- E208 HAPPy で扱えない大きな符号なし実数が現れた
-
- 符号なし実数の値が、HAPPy で扱える範囲( およそ 3.4E38)を越えていま
- す。逆に小さすぎる数を指定した時は、0に置き換えられるので、エラー
- にはなりません。
-
- E300 この形の%sを使うにはプログラム引数にinput の指定が必要である
-
- %sには、read,readln,eoln,eofのいずれかが入ります。
- それらの標準手続きの引数で、対象となるファイル変数が省略された場合
- には、input が指定されたとみなしますが、input の宣言がありません。
- プログラム引数にinput を指定する必要があります。
-
- E301 この形の%sを使うにはプログラム引数にoutputの指定が必要である
-
- %sには、write,writeln のいずれかかが入ります。
- それらの標準手続きの引数で、対象となるファイル変数が省略された場合
- には、outputが指定されたものとみなしますが、outputの宣言がありませ
- ん。プログラム引数にoutputを指定する必要があります。
-
- E600 HAPPy のinput,output以外の外部ファイル数制限(8) を越えた
-
- HAPPy では、input,outputファイル以外のプログラム引数に指定できるフ
- ァイルの数は8個までです。
-
- E601 HAPPy のcase文の選択肢定数範囲制限(1000)を越えた
-
- HAPPy では、case文の選択肢定数の最大値と最小値の範囲が1000以下でな
- ければなりません。例えば、次のようなcase文はエラーになります。
- case i of
- 1 : ;
- 1001 : ;
- end ;
-
- E602 HAPPyの文字列の長さ制限(256) を越えた
-
- HAPPy では、文字列定数の長さが256 文字以内に制限されています。
-
- E603 HAPPyの名前の入れ子数制限(20)を越えた
-
- HAPPy では、名前の入れ子の最大数は20です。それを越えた場合にこの
- エラーが発生します。
- 名前の入れ子には、レコード型の入れ子、手続き・関数の入れ子、引数並
- びの入れ子がありますが、それらが同時に入れ子になる最大数が20以下
- という制限です。
-
- E604 HAPPyの手続き・関数の入れ子数制限(10)を越えた
-
- HAPPy では、手続き・関数の入れ子の最大数は10です。それを超えた場
- 合にこのエラーが発生します。
- 例えば、次のようなプログラムにおいて、手続きp2は、入れ子2です。
- program nest ;
- procedure p1;
- procedure p2 ; begin end;
- begin p2 end;
- begin p1 end.
-
- E605 HAPPyの型の大きさ制限(32767) を越えた
-
- HAPPy 独自の制限です。
- 1つの型の大きさは、32767 ワード以下である必要があります。
- 1ワードとは、整数型、実数型、文字型、論理型、列挙型、集合型、ポイ
- ンタ型の型の大きさのことをいいます。
- 32767 以下の場合でも実行時にスタックが割当できないことがありますが
- 32767 以下でないと、正しいP-codeオブジェクトが生成できないので、こ
- ういう制限がついています。
- 例えば、type a = array[1..50000] of integer ; はこのエラーになりま
- す。
-
- E606 HAPPy では集合の基底型の順序数範囲に制約がある(0~31)
-
- HAPPy 独自の制約です。
- 集合の型を定義する際、基底型に指定する順序型の取り得る順序数範囲が
- 0~31以内でなければなりません。
- したがって、set of char や set of integer あるいは set of -10..10
- はすべでこのエラーが発生します。
-
- E607 HAPPy の集合構成子要素記述の値制約(0~31) を越えている
-
- HAPPy 独自の制約です。
- [要素記述式・・・] という形をしたものが集合構成子ですが、この要素
- 記述式の順序数が0~31以内というHAPPy の制約を越えています。
-
- E608 HAPPyでは局所ファイルを許していない
-
- 唯一の標準Pascalの機能未サポート項目です。
- 局所ファイルとは、プログラム引数に指定されているファイル型を持つ変
- 数以外のもので、外部ファイル実体と結びつかないものをいいます。
- 例えば、
- program localfileError(a,b,c) ;
- type Filetype = file of integer ;
- var a,b,c : FileType ; {外部ファイル OK }
- localfile1: FileType ; {プログラム引数にない}
- localfile2: record
- r1 : FileType ; {プログラム引数にない}
- end ;
- localfile3:^FileType ; {ファイル型へのポインタ}
- procedure p;
- var localfile4 : FileType ; {手続きに局所的 }
- begin end;
- begin new(localfile3) end.
- というプログラムにおいて、変数localfile1からlocalfile4まですべて局
- 所ファイルを構成するものなので、このエラーが発生します。
-
- E609 変数割当する記憶域を使い果たした
-
- スタックに変数を割当することができません。コンパイラが生成するP-co
- deで割当可能なスタックの最大数は、32767 ワードです。従って、例えば
- var a,b,c: array[1..10000] of integer ;
- d : array[1..3000] of integer ;
- とした場合、変数d をスタック上に割り当てることができませんので、こ
- のエラーが発生します。
-
- E610 プログラムが終わらないままEOFを検出した
-
- プログラムの最後は、'.' である必要がありますが、コンパイラがプログ
- ラムの終わりの'.' を検出する前に、ソースファイルのEOFを検出して
- しまったことを表します。なおEOFとは、End Of File の略で、ファイ
- ルの終わりのことです。
- 本当に'.' がないか、あるいはbegin と endの対応がとれていない場合が
- 大部分です。
-
- E700 作業エリアが確保できなかった。コンパイルを停止する
-
- このメッセージは純粋なコンパイルエラーではありません。
- コンパイル時に使用するヒープメモリを使い切ったため、これ以上コンパ
- イルを続行できません。このメッセージ出力後コンパイラは停止します。
- なお、現バージョン(Version 0.0)では、ヒープメモリサイズは32768 バ
- イトです。
-
- E701 P-codeソースの出力でエラーが発生した。コンパイルを停止する
-
- このメッセージは純粋なコンパイルエラーではありません。
- P-codeソースを書き込み中、ファイルアクセスエラーが発生したことを表
- します。このメッセージを出力後コンパイラは停止します。
-
-
-
- 4.アセンブラのエラーメッセージ
-
- コンパイラから自動起動されるアセンブラ(PA.OVL) では、P-codeソース
- をアセンブルして、P-codeオブジェクトファイルを作成します。その過程で
- 何らかのエラーが発生すると、エラーメッセージを標準エラー出力に出力して処理
- を打ち切ります。
- 以下に、各々のエラーメッセージについて説明します。
-
-
- 番号 メッセッージ内容
- ──────────────────────────────────────
- A001 命令数が多すぎてアセンブルできない
-
- P-code仮想計算機のメモリは8192ワードですが、コンパイラの
- 作成したP-codeソースの命令数が8192を越えています。このよ
- うな大きなプログラムはHAPPyでは扱えません。
-
- A002 オブジェクトファイルがオープンできない
-
- 何らかの原因により、P-codeオブジェクトファイル(pcode.pco)が
- オープンできません。
-
- A003 オブジクトファイル書き込みでエラーが発生した
-
- P-codeオブジェクトファイルをディスクに書き出している時、何ら
- かの原因でエラーが発生しました。ディスク容量が足らないことが考えら
- れます。
-
- A004 ラベル数が多すぎてアセンブルできない
-
- コンパイラが作成したP-codeソース中のラベル数(Lxの形をした
- もの)が1800を越えているため、アセンブルができません。
-
- A005 定数を格納するメモリを使い果たしてアセンブルできない
-
- P-codeソースに現れる定数をメモリに格納できません。
- 命令数が多いか、定数が多い場合に発生します。
-
- A006 P-codeソースファイルがオープンできない
-
- 何らかの原因でP-codeソースファイル(pcode.pcs)がオープンでき
- ません。
-
- A007 PC.EXEとPA.OVLのバージョンが違う
-
- コンパイラ(PC.EXE)とアセンブラ(PA.OVL) のバージョンが食い違ってい
- ます。なお、現在はVersion 0.0.しか存在しないので、このエラーは発生
- しません。将来バージョンアップされた際には、両者とも新しい方を使う
- ようにして下さい。
-
-
-
- 5.インタプリタのエラーメッセージ
-
- P-codeオブジェクトを実行する前にエラーが発生した場合の、エラーメッ
- セージについて説明します。このメッセージは標準エラー出力に出力されます。
-
-
- 番号 メッセージ内容
- ──────────────────────────────────────
- I001 P-codeオブジェクトファイル(pcode.pco) がない
-
- カレントディレクトリにオブジェクトファイルがありません。もう一度コ
- ンパイルしなおして下さい。
-
- I002 P-codeオブジェクトファイル(pcode.pco) が不当である
-
- P-codeオブジェクトファイル(pcode.pco)がHAPPy Paca
- lコンパイラで作られたものではありません。あるいは、アセンブル途中
- で、ファイル書き込みエラーがおきてファイルが完結していません。
-
- I003 コンパイラ(Version %s1) とインタプリタ(Version %s2) のバージョンが
- 違う
-
- P-codeオブジェクトを作成したコンパイラ(PC.EXE)と起動したイン
- タプリタ(PI.EXE) のバージョンが食い違っています。なお、現在はVers
- ion 0.0 しか存在しないので、このエラーは発生しません。将来バージョ
- ンアップされた際には、両者とも新しい方を使うようにして下さい。
- メッセージ中の%s1,%s2 の部分には、それぞれのバージョン番号が入りま
- す。
-
-
-
- 6.インタプリタのランタイムエラーメッセージ
-
- P-codeオブジェクトを実行中に、ISO規格で規定された誤りやファイル
- 障害などを発見した場合、以下のメッセージを標準エラー出力に出力し処理を打ち
- 切ります。
- メッセージの形式は以下のとおりです。
- ┌────────────────────────────┐
- │ *** [ADDR=xxxx] HAPPy Run-time error Rxxx: │
- │ -- メッセージ内容 : 処理打ち切り *** │
- └────────────────────────────┘
-
- ここで、ADDR=xxxxのx 部分は、エラーの発生した仮想計算機のアドレスを示し
- ています。なお、このアドレスからPascalソース上の場所を見つける方法は
- 「HAPPy操作説明書(OPERATE.DOC)」をご覧下さい。
-
- 番号 メッセージ内容
- ──────────────────────────────────────
- R001 配列の添字式の値(%d1) が範囲内(%d2~%d3)にない
-
- 添字つき変数において、添字式が添字型に対して代入可能でありません。
- %d1 には添字式の値が、%d2,%d3 には添字型の範囲が入ります。
-
- R003 対象変数のポインタ変数の値がnil である
-
- 対象変数のポインタ変数値がnil になっています。
-
- R004 対象変数のポインタ変数の値が不定である
-
- 対象変数のポインタ変数の値が不定です。
-
- R007 実値引数の値(%d1) が範囲内(%d2~%d3)にない
-
- 実引数が、仮値引数に対して代入可能でありません。
- %d1 には実引数の値が、%d2,%d3 には仮値引数の範囲が入ります。
-
- R008 実値引数の集合値が範囲内(%d1~%d2)にない
-
- 集合型の実引数が、仮値引数に対して代入可能でありません。
- %d1,%d2 には集合型の仮値引数の元の範囲が入ります。
-
- R009 %s0: %s1( 実ファイル=%s2)が生成モードでない
-
- put,write,writeln,pageを行う対象のファイルが生成モードではありませ
- ん。%s0 にはput,write,writeln,pageのいずれかが、%s1 にはプログラム
- で指定したファイル名、%s2 には実ファイル名が入ります。
-
- R010 %s0: %s1( 実ファイル=%s2)が不定である
-
- put,write,writeln,pageを行う対象のファイルに対してreset またはrewr
- ite を行っていません。%s0 にはput,write,writeln,pageのいずれかが、
- %s1 にはプログラムで指定したファイル名、%s2 には実ファイル名が入り
- ます。
-
- R013 reset: %s1(実ファイル=%s2) が不定である
-
- reset を行う対象のファイルが、存在しません。%s1 にはプログラムで指
- 定したファイル名、%s2 には実ファイル名が入ります。
-
- R014 %S0: %s1( 実ファイル=%s2)が検査モードでない
-
- get またはreadをを行う対象のファイルが検査モードでありません。
- %s0 にはget,readのいずれかが、%s1 にはプログラムで指定したファイル
- 名、%s2 には実ファイル名が入ります。
-
- R016 %S0: %s1( 実ファイル=%s2)がEOFとなっている
-
- get またはreadをを行う対象のファイルが、ファイルの終わりとなってい
- ます。%s0 にはget,readのいずれかが、%s1 にはプログラムで指定したフ
- ァイル名、%s2 には実ファイル名が入ります。
-
- R017 read: バッファ変数の値(%d1) が範囲内(%d2~%d3)にない
-
- テキストファイル以外のreadにおいて、バッファ変数の値がreadで指定さ
- れた読み込み対象変数に対して代入可能でありません。
- %d1 にはバッファ変数の値が、%d2,%d3 には読み込み対象変数の型の範囲
- が入ります。
-
- R018 write: 式の値(%d1) が範囲内(%d2~%d3)にない
-
- テキストファイル以外のwrite において、write に指定したの式の値が、
- バッファ変数に対して代入可能ではありません。
- %d1 の部分には書き出し対象の式の値が、%d2,%d3 にはバッファ変数の型
- の範囲が入ります。
-
- R023 dispose: 引数の値がnil である
-
- dispose の引数の値がnil です。
-
- R024 dispose: 引数の値が不定である
-
- dispose の引数の値が不定です。
-
- R026 pack: 順序型の引数の値(%d1) が範囲内(%d2~%d3)にない
-
- packの第2引数である順序型の引数の値が詰めなし配列の添字の型の範囲
- 内にありません。
- %d1 には順序型の引数の値が、%d2,%d3 には詰めなし配列の添字の型の範
- 囲が入ります。
-
- R029 unpack: 順序型の引数の値(%d1) が範囲内(%d2~%d3)にない
-
- unpackの第3引数である順序型の引数の値が詰めなし配列の添字の型の範
- 囲内にありません。
- %d1 には順序型の引数の値が、%d2,%d3 には詰めなし配列の添字の型の範
- 囲が入ります。
-
- R031 unpack: 転送後に詰めなし配列の添字型を越える
-
- unpackにおいて、詰めあり配列から詰めなし配列へデータ転送後、詰めな
- し配列の添字の範囲内に収まりきりません。
-
- R033 ln:引数の値が0以下である
-
- 0以下の自然対数を求めようとしました。そういう値は存在しません。
-
- R034 sqrt:引数の値が負である
-
- 負の平方根を求めようとしました。そういう値は存在しません。
-
- R037 chr: 引数の値(%d)に対応する文字がない
-
- chr 標準関数の引数の値は、0~255の範囲でなければなりません。
-
- R040 eof: %s1( 実ファイル=%s2)が不定である
-
- eof を行う対象のファイルに対して、reset またはrewrite を行っていま
- せん。%s1 にはプログラムで指定したファイル名、%s2 には実ファイル名
- が入ります。
-
- R041 eoln: %s1(実ファイル=%s2)が不定である
-
- eolnを行う対象のファイルに対してreset またはrewrite を行っていませ
- ん。%s1 にはプログラムで指定したファイル名、%s2 には実ファイル名が
- 入ります。
-
- R042 eoln: %s1(実ファイル=%s2)がEOFとなっている
-
- eolnを行う対象のファイルが、ファイルの終わりとなっています。
- %s1 にはプログラムで指定したファイル名、%s2 には実ファイル名が入り
- ます。
-
- R044 /演算子:0 で割ろうとしている
-
- 実数の割り算で、0で割ろうとしています。
-
- R045 div 演算子: 0 で割ろうとしている
-
- 整数の割り算で、0で割ろうとしています。
-
- R046 mod 演算子: 右辺値が0 または負である
-
- mod 演算子の右辺値が0か負です。
-
- R049 代入文: 右辺値(%d1) が範囲内(%d2~%d3)にない
-
- 代入文の右辺値が、左辺の型に対して代入可能ではありません。
- %d1 には右辺値が、%d2,%d3 には左辺の型の範囲が入ります。
-
- R050 代入文: 集合値が範囲内(%d1~%d2)にない
-
- 代入文の左辺が集合型の場合、右辺値が左辺の型に対して代入可能ではあ
- りません。%d1,%d2 には集合の元の範囲が入ります。
-
- R051 case文: 選択式の値(%d)に合致する選択定数がない
-
- case文に入った時、選択式の値に合致する選択定数がありません。
- なお、このメッセージでは、%dの部分に選択式の値が埋め込まれる場合と
- (%d)という部分のないメッセージの2種類があります。
-
- R052 for 文: 初期値(%d1) が範囲内(%d2~%d3)にない
-
- for 文の文が一回でも実行される時、初期値が制御変数に対して代入可能
- ではありません。%d1 には初期値が、%d2,%d3 には制御変数の型の範囲が
- 入ります。
-
- R053 for 文: 終値(%d1) が範囲内(%d2~%d3)にない
-
- for 文の文が一回でも実行される時、終値が制御変数に対して代入可能で
- はありません。%d1 には終値が、%d2,%d3 には制御変数の型の範囲が入り
- ます。
-
- R054 read: %s1(実ファイル=%s2)から符号付き整数の形式でないものを読もう
- とした
-
- テキストファイルから整数を読み込む場合、符号付き整数の形式でないも
- のを読もうとしました。または、符号なし整数がmaxint(2147483647)より
- も大きい値です。
- %s1 にはプログラムで指定したファイル名、%s2 には実ファイル名が入り
- ます。
-
- R056 read: %s1(実ファイル=%s2)から符号付き数の形式でないものを読もうと
- した
-
- テキストファイルから実数を読み込む場合、符号付き数の形式でないもの
- を読もうとしました。
- %s1 にはプログラムで指定したファイル名、%s2 には実ファイル名が入り
- ます。
-
- R071 read: 集合型のバッファ変数の値が範囲内(%d1~%d2)にない
-
- テキストファイル以外のreadにおいて、集合型のバッファ変数の値がread
- で指定された読み込み対象変数に対して代入可能でありません。
- %d1,%d2 には集合型の読み込み対象変数の元の範囲が入ります。
-
- R072 write:集合型の式の値が範囲内(%d1~%d2)にない
-
- テキストファイル以外のwrite において、write に指定したの集合型の式
- の値が、バッファ変数に対して代入可能ではありません。
- %d1,%d2 には集合型のバッファ変数の元の範囲が入ります。
-
- R081 reset:%s1(実ファイル=%s2)に対してresetはできない
-
- 標準のテキストファイルinput,outputに対してはユーザプログラムからre
- set することができません。
- %s1 にはinput またはoutput,%s2 には標準入力または標準出力が入りま
- す。
-
- R082 rewrite:%s1(実ファイル=%s2)に対してrewriteはできない
-
- 標準のテキストファイルinput,outputに対してはユーザプログラムからre
- write することができません。
- %s1 にはinput またはoutput,%s2 には標準入力または標準出力が入りま
- す。
-
- R111 集合構成子の順序式の値(%d)がHAPPyの制限範囲内(0~31) にない
-
- HAPPy 独自の制約です。集合構成子の順序式の順序数が 0~31の間に有り
- ません。%dには順序式の値が入ります。
-
- R121 new:メモリ不足で割り付けができない
-
- new 標準手続きで対象変数を割りつけられるだけのヒープメモリがありま
- せん。
-
- R122 スタック用のメモリが不足している
-
- 仮想計算機のスタックを使い果たしました。
- オブジェクトサイズが大きくて、スタックメモリが少ない場合や、ヒープ
- メモリをたくさん使っている場合、あるいは再帰処理の呼び出しネストが
- 深い場合に発生します。
-
- R131 %s0: %s1( 実ファイル=%s2)で障害が発生した
-
- put,get において、何らかのファイル障害が発生しました。
- %s0 には、put,get のいずれかが、%s1 にはプログラムで指定したファイ
- ル名、%s2 には実ファイル名が入ります。
-
- R132 rewrite: %s1( 実ファイル=%s2)のオープンができない
-
- rewrite において、何らかの原因でファイルのオープンができません。
- %s1 にはプログラムで指定したファイル名、%s2 には実ファイル名が入り
- ます。
-
- R142 未定義命令を実行しようとした
-
- 通常はこのエラーは発生しません。オブジェクトファイルが完結していな
- か、ユーザプログラムが暴走した場合に発生します。
-
- R150 実数演算で異常がおきた(%s)
-
- 実数の演算または操作において、異常が発生しました。
- %sに入る文字とその意味は次の通りです。
- invalid ・・・ 演算が無効です。無限大などです。
- overflow ・・・ 数が大きすぎるためにオーバーフローしまし
- た。
- stack overflow ・・・ 浮動小数点式がスタックをオーバーフローし
- ました。
- stack underflow ・・・ 浮動小数点式がスタックをアンダーフローし
- ました。
-
- R152 <CTRL-C>を受け付けた
-
- キーボードから、<CTRL-C>が押されました。
-
-
-
- ─────── 以上 (ERROR.DOC 終わり) ──────